from mitmproxy import ctx
import json



class Write_Interface_Data:
    from mitmproxy import ctx

    # 所有发出的请求数据包都会被这个方法所处理
    # 所谓的处理，我们这里只是打印一下一些项；当然可以修改这些项的值直接给这些项赋值即可
    def request(flow):
        # 获取请求对象
        request = flow.request
        # 实例化输出类
        info = ctx.log.info
        # 打印请求的url
        info(request.url)
        # 打印请求方法
        info(request.method)
        # 打印host头
        info(request.host)
        # 打印请求端口
        info(str(request.port))
        # 打印所有请求头部
        info(str(request.headers))
        # 打印cookie头
        info(str(request.cookies))

    # 所有服务器响应的数据包都会被这个方法处理
    # 所谓的处理，我们这里只是打印一下一些项
    def response(flow):
        # 获取响应对象
        response = flow.response
        # 实例化输出类
        info = ctx.log.info
        # 打印响应码
        info(str(response.status_code))
        # 打印所有头部
        info(str(response.headers))
        # 打印cookie头部
        info(str(response.cookies))
        # 打印响应报文内容
        info(str(response.text))
